package com.banconacion.servlet;

import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.banconacion.bean.UsuarioDTO;
import com.banconacion.service.LogueoService;

public class LogueoServlet extends HttpServlet {

    private static final long serialVersionUID = 2652225997622140246L;

    protected void service(
            HttpServletRequest request,
            HttpServletResponse response)
            throws ServletException, IOException {

        // 1. recuperamos  parametros que llegan en el request
        String vusuario = request.getParameter("usuario");
        String vclave = request.getParameter("clave");
        System.out.println(vusuario);
        System.out.println(vclave);

        // 2. validamos si el usuario y la clave son correctos
        // esta seria nuestra pequenha logica de negocio

        LogueoService servicio = new LogueoService();
        UsuarioDTO usuarioDTO = null;//ClienteDTO objCliente=null;

        try {
            //objCliente = servicio.validaUsuario(vusuario);
            usuarioDTO = servicio.validaUsuario(vusuario, vclave);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println("IF CONDITION");
        if (usuarioDTO != null) {//if(objCliente!=null){

            // si existe el usuario

            if (request.isRequestedSessionIdValid()) {
                HttpSession tempo = request.getSession(false);
                tempo.invalidate();
            }

            HttpSession lasesion = request.getSession(true);
            // cargamos informacion adicional en el request
            lasesion.setAttribute("usuario", usuarioDTO);//lasesion.setAttribute("dto_cliente",objCliente);

            int tipoUsuario = usuarioDTO.getTipoUsuario();

            switch (tipoUsuario) {
                case 1:
                    request.getRequestDispatcher("/pages/MenuEncargado.jsp").forward(request, response);
                    break;
                case 2:
                    request.getRequestDispatcher("/pages/MenuAsesor.jsp").forward(request, response);
                    break;
            }
            // despachamos el request
//                request.getRequestDispatcher("/bienvenida.jsp").forward(request, response);
            System.out.println("La id de la sesion es: " + lasesion.getId());
            System.out.println("El tiempo maximo de la sesion es: " + lasesion.getMaxInactiveInterval());
            System.out.println("La sesion es nueva " + lasesion.isNew());



        } else {
            // no existe el usuario
            String mensaje = "Usuario o password incorrecto";

            request.setAttribute("a_mensaje", mensaje);

            RequestDispatcher rd =
                    request.getRequestDispatcher("/LogueoBN.jsp");

            // despachamos el request
            rd.forward(request, response);


        }



    }
}
